// pages/search/search.js
/* 
1 输入框绑定 值改变事件 input事件
  1 获取到输入框的值
  2 合法性判断 
  3 检验通过 把输入框的值 发送到后台
  4 返回的数据打印到页面上
2 防抖 （防止抖动） 定时器  节流 
  0 防抖 一般 输入框中 防止重复输入 重复发送请求
  1 节流 一般是用在页面下拉和上拉 
  1 定义全局的定时器id
 */
import { request } from "../../request/request";
Page({
  /**
   * 页面的初始数据
   */
  data: {
    searchData: [],
    // 按钮是否显示和隐藏
    btnHidden: true,
    // 输入框的内容
    inputValue: ''
  },
  // 搜素接口的参数
  qSearch: "",
  timeId: -1,

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {},
  // 处理搜索查看内容
  handleSearchContent(e) {
    // console.log(e);
    const { value } = e.detail;
    // 2 检测合法性
    if (!value.trim()) {
      clearTimeout(this.timeId)
      this.setData({
        searchData: [],
        btnHidden: true
      })
      return
    }
    clearTimeout(this.timeId)
    this.timeId = setTimeout(() => {
      this.getSearchData(value);
    },1000)
  },
  // 获取内容的数据
  async getSearchData(qSearch) {
    const { message } = await request({
      url: "/goods/qsearch",
      data: { query: qSearch },
    });
    console.log({ message });
    this.setData({
      searchData: message,
      btnHidden: false
    });
  },
  // 处理点击取消按钮
  handleCancel() {
    this.setData({
      searchData: [],
      btnHidden: true,
      inputValue: ''
    })
  }
});
